package com.tjetc.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

@SuppressWarnings("all")
public class _1CollectionsMethod {
    /*
    1.	reverse(List):反转List中元素的顺序
    2.	shuffle(List):对List集合元素进行随机排序
    3.	sort(List):根据元素的自然顺序对指定List集合元素按升序排序
    4.	sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序
    5.	swap(List,int,int):将指定list集合中的i处元素和j处元素进行交换

     */

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(2);
        list.add(2);
        // 修改的原集合
        Collections.reverse(list);
        System.out.println(list);

        Collections.shuffle(list);
        System.out.println(list);

        Collections.sort(list);
        System.out.println(list);

        Collections.sort(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                Integer i = (Integer) o1;
                Integer i1 = (Integer) o2;
                return i1 - i;
            }
        });
        System.out.println(list);

        Collections.swap(list, 0, 1);
        System.out.println(list);

        /*
        1.	Object max(Collection): 根据元素的自然顺序，返回给定集合中的最大元素
        2.	Object max(Collection,Comparator): 根据Comparator指定的顺序， 返回给定集合中的最大元素
        3.	Object min(Collection)
        4.	Object min(Collection,Comparator）
        5.	int frequency(Collection,Object): 返回指定集合中指定元素的出现次数
        6.	void copy(Listdest,Listsrc): 将src中的内容复制到dest中
        7.	boolean replaceAll(List list,Object oldval, Object newVal): 使用新值替换List对象的所有旧值
         */
        System.out.println(Collections.max(list));
        // 根据自定义比较器来实现最大
        // 最小和最大一样
        System.out.println(Collections.frequency(list, 2));

        ArrayList arrayList = new ArrayList(10);
        for (int i = 0; i < list.size(); i++) {
            arrayList.add("");
        }
        // 这里要注意一个事，拷贝必须保证集合的size大于原数组
        Collections.copy(arrayList, list);
        System.out.println(arrayList);


        System.out.println(Collections.replaceAll(arrayList, 2, 4));
        System.out.println(arrayList);



    }
}
